草庐IT

C++11 智能指针 shared_ptr

全部标签

windows - 如何在 gometalinter 中禁用 pkcs11?

当进行单元测试或构建我的代码时,我必须使用以下命令:gotest--tagsnopkcs11我正在使用https://github.com/alecthomas/gometalinter在windows上进行linting。gometalinter运行良好,但每当我运行linting时,我都会看到大量(数百条)这样的消息:c:\Users\xxxxxxxxx\workspace\go\src\github.com\hyperledger\fabric\bccsp\pkcs11\impl.go:70:24:warning:SessionHandle未由包pkcs11声明(staticch

pointers - 在 Go 中使用类似的指针结构分配结构

我有两个相似的结构,我想将一个分配给另一个。第一个“Equipment”是用来匹配数据库的结构。第二个“JsonEquipment”是解析JSON数据的辅助结构。例子如下:typeEquipmentstruct{IDuintCategoryIDuintIpstringLoginstringPasswordstring}typeJsonEquipmentstruct{ID*uintCategory*stringIp*stringLogin*stringPassword*string}指针用于检查该字段是否存在于JSON中。更多信息:Howtorecognizevoidvalueandun

function - 值接收器与指针接收器

我很不清楚在哪种情况下我想使用值接收器而不是总是使用指针接收器。从文档中回顾一下:typeTstruct{aint}func(tvT)Mv(aint)int{return0}//valuereceiverfunc(tp*T)Mp(ffloat32)float32{return1}//pointerreceiver文档还说“对于基本类型、slice和小型结构等类型,值接收器非常便宜,因此除非方法的语义需要指针,否则值接收器是高效的清晰。”第一点他们的文档说值接收器“非常便宜”,但问题是它是否比指针接收器便宜。所以我做了一个小基准(codeongist)这告诉我,即使对于只有一个字符串字段

html - Buffalo v0.11.0 与 flash 和 application.html 有问题吗?

我是Golang和Buffalo的初学者。我正在尝试使用https://github.com/gobuffalo/authrecipe中的authrecipe创建密码身份验证服务.但是,在尝试使用buffalodev运行它时,我从JSON转储中收到以下错误:ERRO[2018-05-10T14:20:48-04:00]application.html:line14:_flash.html:第3行:flash:未知标识符content_type=text/htmldb="0s"duration="5.354757ms"human_size="0B"method=GETparams="{}

pointers - 为什么带有指针接收器的方法在接收到值时仍然有效?

我只是在玩Exercise51intheTourofGo.该解释声称Scale方法在接收到Vertex而不是指向Vertex的指针时无效。然而,当我在main中将声明v:=&Vertex{3,4}更改为v:=Vertex{3,4}>输出中唯一的变化是缺少标记指针的&。那么为什么Scale会更改它接收到的变量,即使该变量不是指针? 最佳答案 它不“接收”一个值。Go是强类型的,因此如果在某处规定了指向T的指针,则指向T(*T)的指针是唯一可以作为此类类型位置的值发生的选项。“魔法”在编译器中,它在某些conditions下有效地“重写

golang 从指针类型 slice 复制指针值

typeOrderstruct{*ResStatusint}typeResstruct{ResIDint64OtaBookIDstringStayDetail[]*ResElementTotalChargefloat64CustFNamestringCustLNamestringCreateTimetime.Time}typeResElementstruct{Res*ResOtaEleIDstringOtaRoomIDstringRoomIDintArrivaltime.TimeDeparttime.TimeChargefloat64CreateTimetime.Time}我有一个名为

go - MapScan 无法解码为非指针 int64

我使用了MapScan并用这个错误对其进行了迭代cannotunmarshalintonon-pointerint64第一次迭代后出错。这是我正在处理的代码:typeNotFinishedTBLFieldsstruct{Bulk_idint64RecipientstringOperatorstringTracking_codestring}funcFetchNotFinishedTBLRows()*NotFinishedTBLFields{rowValues:=make(map[string]interface{})varrowNotFinishedTBLFieldsiter:=Ins

go - 当值是 reflect.Ptr 时如何使用 reflect.FieldByName

我有一个project函数,它返回一个slice,其中包含输入slice中每个结构或映射的名称的字段值。我遇到输入slice包含指向结构的指针的情况。我已经设置了一个递归函数来对值进行操作,但需要知道如何将类型reflect.Ptr转换为底层reflect.Struct。这是怎么做到的?任何其他设计建议表示赞赏。我对Go还是有点陌生​​。代码如下:funcproject(in[]interface{},propertystring)[]interface{}{varresult[]interface{}varappendValuefunc(list[]interface{},elint

go - 未命名指针返回值的预期标识符

gofmt此时给出关于此函数签名的“预期标识符”警告:funcfoo()(*int,yint){}^但是,它不会提示这个签名:funcfoo()(int,yint){}如何命名一个返回值而不让gofmt提示未命名的指针返回值? 最佳答案 HowcanInameonereturnvaluewithouthavinggofmtcomplainabouttheunnamedpointerreturnvalue?TheGoProgrammingLanguageSpecificationBlankidentifierTheblankident

go - 为什么嵌入式类型不能作为指针传递

这个问题在这里已经有了答案:"ispointertointerface,notinterface"confusion(2个答案)关闭4年前。有人可以解释为什么这不起作用吗?如果DoMove采用结构而不是指针,它会起作用。packagemainimport("fmt")typeVehicleinterface{Move()}typeCarinterface{VehicleWheels()int}typecarstruct{}func(fcar)Move(){fmt.Println("Moving...")}func(fcar)Colour()int{return4}funcDoMove(